require(toolboxH)
## Lade nötiges Paket: toolboxH
## Lade nötiges Paket: data.table
## Lade nötiges Paket: R.utils
## Lade nötiges Paket: R.oo
## Lade nötiges Paket: R.methodsS3
## R.methodsS3 v1.8.1 (2020-08-26 16:20:06 UTC) successfully loaded. See ?R.methodsS3 for help.
## R.oo v1.24.0 (2020-08-26 16:11:58 UTC) successfully loaded. See ?R.oo for help.
## 
## Attache Paket: 'R.oo'
## Das folgende Objekt ist maskiert 'package:R.methodsS3':
## 
##     throw
## Die folgenden Objekte sind maskiert von 'package:methods':
## 
##     getClasses, getMethods
## Die folgenden Objekte sind maskiert von 'package:base':
## 
##     attach, detach, load, save
## R.utils v2.11.0 (2021-09-26 08:30:02 UTC) successfully loaded. See ?R.utils for help.
## 
## Attache Paket: 'R.utils'
## Das folgende Objekt ist maskiert 'package:utils':
## 
##     timestamp
## Die folgenden Objekte sind maskiert von 'package:base':
## 
##     cat, commandArgs, getOption, inherits, isOpen, nullfile, parse,
##     warnings
## Lade nötiges Paket: fdrtool
## Lade nötiges Paket: png
## Lade nötiges Paket: RColorBrewer
## Lade nötiges Paket: readxl
## Lade nötiges Paket: scales
## Lade nötiges Paket: stringr
## Lade nötiges Paket: testthat
## 
## Attache Paket: 'testthat'
## Das folgende Objekt ist maskiert 'package:R.oo':
## 
##     equals
## Lade nötiges Paket: eulerr
## 
## Attache Paket: 'toolboxH'
## Das folgende Objekt ist maskiert 'package:eulerr':
## 
##     venn
require(ggplot2)
## Lade nötiges Paket: ggplot2
require(scales)
require(stringr)
require(ggthemes)
## Lade nötiges Paket: ggthemes
require(lubridate)
## Lade nötiges Paket: lubridate
## 
## Attache Paket: 'lubridate'
## Die folgenden Objekte sind maskiert von 'package:data.table':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday, week,
##     yday, year
## Die folgenden Objekte sind maskiert von 'package:base':
## 
##     date, intersect, setdiff, union
irland = fread("C:/Users/IMISE/Nextcloud/saxocov/ireland/COVID-19_HPSC_Detailed_Statistics_Profile.csv") # https://covid-19.geohive.ie/datasets/d8eb52d56273413b84b0187a4e9117be_0/about
irland[,unique(paste(X,Y))]
## [1] "-7.692596 53.288234"
irlandm = melt(irland, id.vars = c("X", "Y", "Date", "StatisticsProfileDate"))
unique(irlandm$variable)
##  [1] ConfirmedCovidCases         TotalConfirmedCovidCases   
##  [3] ConfirmedCovidDeaths        TotalCovidDeaths           
##  [5] CovidCasesConfirmed         HospitalisedCovidCases     
##  [7] RequiringICUCovidCases      HealthcareWorkersCovidCases
##  [9] ClustersNotified            HospitalisedAged5          
## [11] HospitalisedAged5to14       HospitalisedAged15to24     
## [13] HospitalisedAged25to34      HospitalisedAged35to44     
## [15] HospitalisedAged45to54      HospitalisedAged55to64     
## [17] Male                        Female                     
## [19] Unknown                     Aged1to4                   
## [21] Aged5to14                   Aged15to24                 
## [23] Aged25to34                  Aged35to44                 
## [25] Aged45to54                  Aged55to64                 
## [27] Median_Age                  CommunityTransmission      
## [29] CloseContact                TravelAbroad               
## [31] FID                         HospitalisedAged65to74     
## [33] HospitalisedAged75to84      HospitalisedAged85up       
## [35] Aged65to74                  Aged75to84                 
## [37] Aged85up                   
## 37 Levels: ConfirmedCovidCases ... Aged85up
irlandm[grep("ged", variable), unique(variable)]
##  [1] HospitalisedAged5      HospitalisedAged5to14  HospitalisedAged15to24
##  [4] HospitalisedAged25to34 HospitalisedAged35to44 HospitalisedAged45to54
##  [7] HospitalisedAged55to64 Aged1to4               Aged5to14             
## [10] Aged15to24             Aged25to34             Aged35to44            
## [13] Aged45to54             Aged55to64             HospitalisedAged65to74
## [16] HospitalisedAged75to84 HospitalisedAged85up   Aged65to74            
## [19] Aged75to84             Aged85up              
## 37 Levels: ConfirmedCovidCases ... Aged85up
irlandm2 = irlandm[grep("ged", variable)]
irlandm2[,type := ifelse(grepl("Hospital", variable), "Hospitalized", "testpositive")]
irlandm2[,agegroup := str_replace_all(variable, "HospitalisedAged|Aged", "")]
irlandm2[,unique(agegroup)] %>% dput
## c("5", "5to14", "15to24", "25to34", "35to44", "45to54", "55to64", 
## "1to4", "65to74", "75to84", "85up")
irlandm2[,agegroup2 := ifelse(agegroup=="5", "1to4", agegroup)]
irlandm2[,unique(agegroup2)] %>% dput
## c("1to4", "5to14", "15to24", "25to34", "35to44", "45to54", "55to64", 
## "65to74", "75to84", "85up")
irlandm2[,agegroup2 := factor(agegroup2, levels = c("1to4", "5to14", "15to24", "25to34", "35to44", "45to54", "55to64", 
                                                    "65to74", "75to84", "85up"))]


irlandm3 = irlandm2[,.(value = sum(value, na.rm = T)), .(Date = as_date(Date), type, agegroup2)]

ggplot(irlandm3, aes(Date, value, col = agegroup2)) + geom_point() + facet_wrap(~agegroup2) + scale_y_log10() + theme()
## Warning: Transformation introduced infinite values in continuous y-axis

p2 = ggplot(irlandm3, aes(Date, value, col = agegroup2 ,lty = type)) + geom_line() + scale_y_log10() + theme()
require(plotly)
## Lade nötiges Paket: plotly
## 
## Attache Paket: 'plotly'
## Das folgende Objekt ist maskiert 'package:ggplot2':
## 
##     last_plot
## Das folgende Objekt ist maskiert 'package:stats':
## 
##     filter
## Das folgende Objekt ist maskiert 'package:graphics':
## 
##     layout
ggplotly(p2)
## Warning: Transformation introduced infinite values in continuous y-axis
qlist1 = venn2((min(irlandm3$Date):max(irlandm3$Date)) %>% as_date() %>% as.character, irlandm3$Date %>% as.character)

str(qlist1)
## List of 3
##  $ q1: chr [1:631] "2020-02-29" "2020-03-03" "2020-03-04" "2020-03-05" ...
##  $ q2: chr [1:2] "2020-03-01" "2020-03-02"
##  $ q3: chr(0)
irlandm4 = irlandm3[Date>=as_date("2020-03-03")]
qlist2 = venn2((min(irlandm4$Date):max(irlandm4$Date)) %>% as_date() %>% as.character, irlandm4$Date %>% as.character)

str(qlist2)
## List of 3
##  $ q1: chr [1:630] "2020-03-03" "2020-03-04" "2020-03-05" "2020-03-06" ...
##  $ q2: chr(0) 
##  $ q3: chr(0)
setorder(irlandm4, type, agegroup2, Date)

irlandm4[,newvalue :=  value-c(0, value[1:(.N-1)]), .(type, agegroup2) ]
irlandm4[,newvalue7 :=  frollmean(x = newvalue, n = 14, align = "center"), .(type, agegroup2) ]


p3 = ggplot(irlandm4, aes(Date, newvalue7, col = agegroup2 ,lty = type)) + geom_line() + scale_y_log10() +  facet_wrap(~agegroup2) + theme()
p3
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 260 row(s) containing missing values (geom_path).

irlandm4[,newvalue7v2 := ifelse(type =="Hospitalized", newvalue7 *10, newvalue7)]

p4 = ggplot(irlandm4, aes(Date, newvalue7v2, col = type)) + geom_line() + scale_y_log10(limits = c(0.5, 1100)) +  facet_wrap(~agegroup2, scales = "free") + theme()
p4
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 26 row(s) containing missing values (geom_path).

p5 = ggplot(irlandm4[Date>as_date("2020-08-01")], aes(Date, newvalue7v2, col =  type)) + geom_line() +  facet_wrap(~agegroup2, scales = "free") + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.4, hjust = 0),
        legend.position = "top",
        axis.text.y.right = element_text(color = "red"),
        axis.title.y.right = element_text(color = "red"))  + 
  scale_x_date(breaks =  date_breaks(width = '1 months'), date_labels = "%Y-%b") + scale_y_continuous(sec.axis = sec_axis(~ . / 10, name = "N Hospitalized (centered 14-day-mean)"), name = "N Testpositive (centered 14-day-mean)")

p5
## Warning: Removed 14 row(s) containing missing values (geom_path).

irland5 = dcast.data.table(irlandm4[is.na(newvalue7v2)==F],Date +agegroup2 ~ type, value.var = c("newvalue7v2"))
irland5[,ratio := Hospitalized/testpositive]


irlandm6 = melt(irland5, id.vars = c("Date", "agegroup2"))

p6 = ggplot(irlandm6[Date>as_date("2020-08-01")], aes(Date, value, col =  variable)) + geom_line() +  facet_wrap(~agegroup2, scales = "free") + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.4, hjust = 0),
        legend.position = "top",
        axis.text.y.right = element_text(color = "red"),
        axis.title.y.right = element_text(color = "red"))   +
  # scale_x_date(breaks =  date_breaks(width = '1 months'), date_labels = "%Y-%b") + 
  scale_y_log10(limits = c(0.01, 1100), labels = label_comma(accuracy = 0.01) , breaks= log_breaks(6))

p6
## Warning: Transformation introduced infinite values in continuous y-axis

irlandm6[ variable =="ratio",ratio14 := frollmean(x = value, n = 14, align = "center"), .( agegroup2) ]
p7 = ggplot(irlandm6[Date>as_date("2020-08-01") & variable =="ratio"], aes(Date, value, col =  variable)) + geom_line() +  facet_wrap(~agegroup2, scales = "free") + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.4, hjust = 0),
        legend.position = "top",
        axis.text.y.right = element_text(color = "red"),
        axis.title.y.right = element_text(color = "red"))   +
  scale_x_date(breaks =  date_breaks(width = '1 months'), date_labels = "%Y-%b") +
  geom_smooth() +ylab('Ratio hospitalized/Testpositive')
  # scale_y_log10(limits = c(0.01, 1100), labels = label_comma(accuracy = 0.01) , breaks= log_breaks(6))

p7
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'